package com.ailink.foodshop.dto;

import com.ailink.foodshop.dataobject.OrderDetail;
import com.ailink.foodshop.enums.OrderStatusEnum;
import com.ailink.foodshop.enums.PayStatusEnum;
import com.ailink.foodshop.utils.EnumUtil;
import com.ailink.foodshop.utils.serializer.Date2LogSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author lh
 * @date 2017/12/21 00:00
 */
@Data
public class OrderDTO {

    /** 订单ID **/
    @Id
    private  String orderId;

    /** 买家名字 **/
    private  String buyerName;

    /** 买家电话 **/
    private  String buyerPhone;

    /** 买家地址 **/
    private  String buyerAddress;

    /** 买家微信openid **/
    private  String buyerOpenid;

    /** 订单总金额 **/
    private BigDecimal orderAmount;

    /** 订单状态,默认0下单 **/
    private Integer orderStatus;

    /** 支付状态 **/
    private Integer payStatus;

    /** 创建时间 **/
    @JsonSerialize(using = Date2LogSerializer.class)
    private Date createTime;

    /** 修改时间 **/
    @JsonSerialize(using = Date2LogSerializer.class)
    private Date updateTime;

    private List<OrderDetail> orderDetailList;

    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }

    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }
}
